3D histogram and other user interface elements for color correcting images

ABSTRACT

The disclosed implementations relate generally to 3D histograms and other user interface elements for color correcting digital images. A color correction method includes: generating a user interface for display on a display device, the user interface including a display area; generating a three-dimensional cube representing a color space for display in the display area; and generating a plurality of spheres for display within the cube, where the spheres are sized to represent pixel densities in a digital image.

RELATED APPLICATIONS

This application is related to co-pending U.S. patent application No.______, entitled “Improved Workflows For Color Correcting Images,” filedApr. 21, 2006, Attorney Docket No. 18814-023001, and U.S. patentapplication No. ______, entitled “3D LUT Techniques For Color CorrectingImages, filed Apr. 21, 2006, Attorney Docket No. 18814-025001. Thesubject matter of each of these patent applications is incorporated byreference herein in its entirety.

TECHNICAL FIELD

The disclosed implementations are generally related to digital imageprocessing.

BACKGROUND

Color correction tools are used in the film industry and otherdisciplines to alter the perceived color of an image. Conventional colorcorrection tools typically allow users to perform primary and secondarycolor corrections. Primary color correction involves correcting thecolor of an entire image, such as adjusting the blacks, whites or graytones of the image. Secondary color correction involves correcting aparticular color range in an image. For example, a user may want tochange the color of an object in an image from red to blue. The userwould identify the range of red in the object and then push the hue toblue. This process could also be applied to other objects in the image.

Color corrections are usually performed in a color space, such as theubiquitous RGB (Red, Green, Blue) color space. These color spaces can berepresented by a three-dimensional (3D) coordinate system, where thethree axes of the coordinate system represents components associatedwith the color space. For example, in the RGB color space the three axesrepresent contributions of Red, Green and Blue. A color can be locatedin the RGB color space based on Red, Green and Blue contributions to thecolor. Since color corrections are performed in 3D color space, manycolorists could benefit from a 3D color visualization tool for makingprecise primary and secondary color adjustments to digital images.

SUMMARY

The disclosed implementations relate generally to 3D histograms andother user interface elements for color correcting digital images.

In some implementations, a color correction method includes: generatinga user interface for display on a display device, the user interfaceincluding a display area; generating a three-dimensional cuberepresenting a color space for display in the display area; andgenerating a plurality of spheres for display within the cube, where thespheres are sized to represent pixel densities in a digital image.

In some implementations, a color correction method includes: generatinga user interface for display on a display device, the user interfaceincluding a display area; and generating a color correction interfacefor display in the display area, the interface including a control foradjusting a selected hue range in a digital image, where the controlallows for hue overstep.

Other implementations are disclosed that are directed to methods,systems, apparatuses, devices and user interfaces.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an exemplary selection process for selecting a colorrange in a digital image.

FIG. 2 a is a screenshot of an exemplary 2D color correction interfacefor correcting a hue range.

FIG. 2 b illustrates the concept of hue overstep.

FIG. 2 c illustrates a user interaction with a hue overstep control.

FIG. 3 is a screenshot of an exemplary 2D color correction interface forcorrecting a luminance range.

FIG. 4 is a screenshot of an exemplary 3D histogram showing arepresentation of pixel values of a digital image in RGB color space.

FIG. 5 is a screenshot of an exemplary 3D histogram showing thedistribution of pixel densities in RGB color space with proxy elements.

FIG. 6 is a screenshot of an exemplary 3D histogram showing thedistribution of pixel values of a digital image in HLS (Hue, Lightness,Saturation) color space.

FIG. 7 is a screenshot of an exemplary 3D histogram, which uses spheresas proxy elements to provide a visual representation of the averagepixel density in the proximity of the sphere.

FIG. 8 a is a screenshot of an exemplary 3D histogram for HLS colorspace, showing a different viewer perspective.

FIG. 8 b is a screenshot of an exemplary 3D histogram for HLS colorspace, showing a different viewer perspective (clockwise rotation aboutthe Saturation axis).

FIG. 8 c is a screenshot of an exemplary 3D histogram for HLS colorspace, showing a different viewer perspective (looking down along theSaturation axis).

FIG. 9 is a block diagram of an exemplary color correction systemincorporating 3D LUTs.

FIG. 10 is a block diagram of an exemplary user system architecture.

DETAILED DESCRIPTION Selection Process

FIG. 1 illustrates an exemplary selection process for selecting a colorrange in a digital image 102. In a color correction tool, an imagerviewer 100 displays the digital image 102. The user can select a region104 in the image 102 using a pointing device 106 (e.g., cursor). Therange 104 can include colors that can be characterized as being in arange of hue, luminance and/or saturation values. In the example shown,the region 104 includes a shadow cast by a volume knob of a bass guitar.The shadow includes blue, gray and white tones. A visual indicator 110(e.g., a marker or tag) can be provided to remind the user of thelocation of the selected region 104. Multiple regions in a digitalimage, or regions from two or more digital images, can be selected bythe user in a similar manner. Each selected region can include adifferent visual indicator. In some implementations, the visualindicator can be painted with a color so as to improve visibility in thedigital image. For example, the visual indicator 110 was painted blackto make it stand out in the lighter colored region 104.

Color Correction Interfaces

FIG. 2A is a screenshot of an exemplary 2D color correction interface200 for correcting a hue range in the digital image 102. In someimplementations, the color correction interface 200 includes a userinterface element 202 (e.g., button) for selecting a color correctionmode. In the example shown, there are two modes available for selection:Luminance and Hue. Other modes are possible.

When the Hue mode is selected, the color correction interface 200displays several curves and controls for adjusting hue characteristics.In some implementations, curves are displayed for saturation 208, levelhigh 210 (e.g., white level), level low 212 (e.g., black level) and huerange 216. In the example shown, the curves represent color correctionsthat will be applied to the digital image 102 based on the hue rangecontained in the selected region 104. For example, the area 218 underthe curve 216 represents the range of hue in the region 104. Rather thandisplaying numbers, the curves are displayed over a hue gradient thatrepresents the colors contained in the digital image 102. The huegradient provides an intuitive interface which is more aligned with howa colorist thinks about color correction. Note that the hue range curve216 continues on the left side of the hue gradient surface so that aportion of the area 218 under the curve 216 is on the left side of thehue gradient.

Using controls 204 and 206, the user can adjust the hue range and sigmaof the digital image 102 based on the hue range contained in region 104.As used herein, “sigma” is the spread of the hue range curve 216 whenthe central position of the hue range curve 216 corresponds to aspecific hue value. Various user interface elements can be used ascontrols (e.g., buttons, sliders, knobs, editable curves, etc.). In theexample shown, a vertical bar 203 is displayed to provide a plot of aspecific pixel in the digital image 102 through a syringe. In theexample shown, the vertical bar 203 is in the middle of the hue range ofregion 104. The user can use the controls in the interface 200 to colorcorrect the digital image 102. Other 2D interfaces are described in U.S.patent application No. ______, entitled “Improved Workflows for ColorCorrecting Images.”

Hue Overstep

FIG. 2 b illustrates the concept of hue overstep. A hue wheel 220 is acircle composed of colors that gradually transition between red, yellowgreen, cyan, blue, magenta and red again as one traverses the circle.Also, in the hue wheel 220 the center is gray and as you go toward theoutside ring, the color becomes more saturated, i.e., more rich. A huerange curve 224 represents the hue range in region 104 (FIG. 1). Thecurve 224 corresponds to the curve 216 shown in FIG. 2 a. The curve 222is the same as curve 224 but has been adjusted to include a hue overstep(i.e., the difference in the peaks of the curves 222, 224). The areaunder the curve 224 represents the hue range of region 102. In somesituations, when a color correction is applied to an image the desiredresult may not be achieved due to psychovisual factors associated withthe human vision system. For example, skin tones may appear to have ablue tint even if blue has been removed from the image. To counteractsuch factors, the hue gradient shown in FIG. 2 a can include a hueoverstep region 214. In some implementations, the hue overstep region214 can be used to include colors in the selection range that areopposite (in terms of hue) from the colors contained in the region 104.For example, the user can adjust the height of the range curve 216(curve 224 in FIG. 2 b) to include an opposite color at a low saturationvalue in the hue overstep region 214 until the desired color selectionis achieved.

Referring to FIG. 2 c, an example of a user interaction with a hueoverstep control 232 in a color correction interface 226 will now bedescribed. In the example shown, a user selected a blue region 236 in animage 234 that also contains an object 238 with skin tones (e.g., awomen golfer against a blue background). When color correction isapplied to correct blue portions of the object 238, the skin tone of theobject 238 may still appear to contain some blue tint (due tosurrounding psychological effect) that the user may wish to affect also.But to correct or affect that part, since it's not a blue range buttruly a yellow range (the opposite of blue), and since that bluish tintwill appear only in a region of low saturated values of the oppositecolor, the hue overstep adjustment can be applied to include in theselected range 236 some part of the low saturated opposite color. Forthe example shown, the blue color range is located at the top of a huewheel 228 in the color correction interface 226. As the hue wheel 228 istraversed clockwise the blue range transitions into a green range andthen into a yellow range. As the hue wheel 228 is traversedcounterclockwise, the blue range transitions into a red range and theninto a yellow range. A user can adjust the selected range 236 where acolor correction could be applied in the image 234. The center of thehue wheel 228 represents colors with no saturation or gray tones. Themore you move toward the external rings of the hue wheel 228, the morethe colors represented by the hue wheel 228 are saturated.

The user can adjust the amount of hue overstep by manipulating a hueoverstep control 232 until the desired color correction is achieved. Bymanipulating the hue overstep control 232 the color that is oppositeblue on the hue wheel 228 (i.e., yellow) is added to the selection range236 of the current correction of the image in varying saturationamounts, as shown in FIG. 2 c. As the user moves the control 232 to theright more saturated yellow tones are added to the selection range 236.As the user moves the control 232 to the left, less saturated yellowtones are added to the selection range 236. In some implementations, alimited range of saturation values is allowed (e.g., a low saturationrange) to achieve the desired result. When the control 232 is completelyat the left, there will be no opposite color included in the selectionrange 236.

Luminance Corrections

FIG. 3 is a screenshot of an exemplary 2D color correction interface 300for correcting a luminance range. The color correction interface 300 issimilar to the color correction interface 200, except the luminance modehas been selected by clicking the user interface element 302. Theinterface 300 displays curves for luminance saturation 308, level 310and range 314 for the digital image 102. An area 316 under the rangecurve 314 represents the luminance range in region 104. The user canadjust luminance range and sigma values with controls 306 and 304,respectively. A vertical bar 12 is a plot of a specific pixel obtainedin the digital image 102 through a syringe. Similar to the userinterface 200, the curves 308, 310 and 314, are displayed over aluminance gradient to provide a more intuitive interface.

3D Histogram For Color Correction

FIG. 4 is a screenshot of an exemplary 3D color histogram showing arepresentation of pixel values of a color corrected digital image in 3Dcolor space. As the user corrects a digital image, the 3D colorhistogram is updated in real time. In some implementations, thereal-time responsiveness can be provided by a 3D LUT, as described inco-pending U.S. patent application No. ______ entitled “3D LUTTechniques for Color Correcting Images.”

In the example shown, the 3D histogram includes a cube 300 representinga bounded color space (e.g., RGB color space) with three coordinateaxes. A first axis 302 represents Red, a second axis 306 represents Blueand a third axis represents Green. A 3D color distribution 308 isdisplayed within the cube 300. In this example, the distribution 308 isa one to one representation of pixel values. That is, each pixel isrepresented by a single point inside the cube 300. The position of thepoint is determined by contributions from Red, Green and Bluecomponents. For example, a pixel that contains only blue would berepresented by a point located along the Blue axis 306 in the cube 300.Similarly, a pixel having a color value with equal amounts of red, greenand blue would be represented by a point located in the center of thecube 300.

3D Histogram With Proxy Elements

FIG. 5 is a screenshot of an exemplary 3D color histogram showing thedistribution of pixel densities in an RGB color space using proxyelements 500 to provide a visual representation of pixel density. Pixeldensities are the correlation of the number of pixels found in thedigital image with a specific color in the proximity range of eachelement 500 in the 3D histogram. In some implementations, a user maydesire only a visual approximation of color distribution in a digitalimage. In the example shown, a number of pixel values is replaced with asingle proxy element 500. The proxy element 500 can be any object (e.g.,cubes, triangles, spheres, etc.). The use of spheres as proxy elements500 provides a significant advantage over cube-shaped proxy elements forspecifying densities. Cube-shaped proxy elements that are displayed tooclose together can appear as one large cube, resulting in a display thatis difficult to read. On the other hand, spheres can be displayed closeto each other because of there shape, resulting in a display that ismuch easier to read (similar to a cluster of molecules). In someimplementations, the size of the proxy elements 500 can be adjusted toindicate the pixel densities in the digital image that are representedby the proxy elements 500. In the example shown, large spheres representlarge pixel densities and small spheres represent small pixel densities.Other representations of pixel density are possible. 3D Histogram WithGradient Surfaces

FIG. 6 is a screenshot of an exemplary 3D histogram showing a 3D colordistribution 600 of pixel values for a digital image in HLS (Hue,Lightness, Saturation) color space. In the example shown, the three axesrepresent Hue, Lightness and Saturation of a color instead ofrepresenting the Red, Green and Blue components, as previously shown inFIGS. 4 and 5. In some implementations, the 3D color histogram includeshue/saturation and luminance gradient surfaces 602 and 604. The surfaces602, 604, are provided as visual reminders to the user of the meaning ofthe corresponding axes that they represent. The hue/saturation gradientsurface 602 includes a gradient of colors in the digital image to becorrected. The luminance gradient surface 604 includes a gradient ofluminance (or brightness) in the digital image. In the example shown,two colors that were previously plotted by a user (FIG. 1) in thedigital image 102 are shown in the 3D histogram as references 610 and612. Any desired number of references can be included in the 3Dhistogram, and each reference can refer to a different color plotted bythe user in one or more digital images.

To assist the user in color correction of hue ranges, the hue/saturationgradient surface 602 includes projections 606 and 608 corresponding toreferences 610 and 612, respectively. In the example shown, theprojections 606 and 608 are rectangles. The centers of the rectangles606, 608, represent the axis intersection of the Hue value with theSaturation value of the plotted pixel. Other representations ofprojections are possible. Projections can be painted with the same coloras their corresponding references or otherwise altered or embellished toform a visual association with a corresponding reference.

To assist the user in color correction of luminance ranges, theluminance gradient surface 604 includes projections 614 and 616corresponding to references 610 and 612. In the example shown, theprojections 614 and 616 are vertical bars and are painted with the samecolor as their corresponding references 610 and 612. Note that verticalbars are used instead of points because only the lightness axis in theHLS color space is represented. Thus, the gradient surface 604 providesa visual cue for the lightness axis only, while the gradient surface 602for hue/saturation provides a visual cue for both the hue and thesaturation axes in HLS color space. That is, the lightness gradientsurface 604 is a 1D gradient and the hue/saturation gradient surface 602is a 2D gradient because it includes two axes.

FIG. 7 is a screenshot of the 3D histogram shown in FIG. 6. In thisexample, the color distribution 700 is represented by spheres, which areproxy elements for indicating pixel density. The color of the spherescorrespond to their respective positions in the 3D histogram. The sizeof the spheres correspond to the pixel density for a particular colorrange.

FIG. 8 a is a screenshot of an exemplary 3D histogram for HLS colorspace. The 3D histogram is shown displayed in a display area 801 of auser interface 800. Also displayed are a hue gradient surface 802 fordisplaying projections 804 and 810 corresponding to references 806 and808, respectively. A user interface element 803 can be used to selectthe 3D histogram for display in the display area 801. A user interfaceelement 805 can be used to select a color space for the 3D correctionhistogram. In the example shown, HLS color space was selected. Othercolor spaces can also be represented by a 3D histogram (e.g., RGB,Y′CbCr, CIELAB, etc.). A user interface element 807 can be used toselect between a proxy element (e.g., a sphere representing density) ora “cloud” of points representing pixel values without any densityinformation, as shown in FIG. 6. User interface elements can be anymechanism that can be presented in the user interface 801 and that canreceive user input (e.g., a menu, dialog pane, check box, button,slider, knob, hot spot, etc.)

FIG. 8 b is a screenshot of the 3D histogram shown in FIG. 8, butshowing a different viewer perspective. In some implementations, theuser can change the “camera” view of the 3D color correction histogramthrough one or more user interface elements (e.g., menu options, hotspot, buttons, slider, etc.). In the example shown, the user has rotatedthe 3D histogram clockwise around the Saturation axis in HLS colorspace. From this perspective the user can see the positioning of theplot of a specific pixel chosen by the user through a syringe in theimage. The lightness of that plot is displayed as a vertical bar 814 onthe lightness gradient surface 812. The plot itself is located atreferences 816. The hue/saturation of that plot are represented as thecenter of the rectangle saw 817 on the hue/ saturation gradient surface819.

FIG. 8 c is a screenshot of the 3D histogram of FIG. 8 b, but showing adifferent perspective i.e., looking down along the Saturation axis.

Exemplary Color Correction System

FIG. 9 is a block diagram of an exemplary color correction system 900.The color correction system 900 includes a system/UI manager 902, aheuristic engine 904, a correction engine 906, a display engine 908 andone or more 3D LUTs 910. The system/UI manager 902 receives user input(e.g., control inputs) from a UI and sends the input to the heuristicengine 904 and/or the correction engine 906 depending upon the type ofinput and the current mode of the system 900. For example, if the userselects a range of pixel values from a digital image, the system/UImanager 902 sends the sample range to the heuristic engine 904 to beanalyzed. The heuristic engine 904 uses, for example, data from expertlevel colorists to determine an intended correction based on the samplerange. For example, if the pixels are mostly black or dark, theheuristic engine 904 may interpret the intended correction to be aluminance range adjustment. The heuristic engine 902 informs thesystem/UI manger 902 of the intended correction. The system/UI manager902 instructs the display engine 908 to present a correction interfacewith luminance controls on the digital image, and to populate thecorrection interface with appropriate luminance data. This same processcan apply to hue, saturation and exposure corrections based on aselected sample range.

When the correction interface is displayed, the user can makeadjustments using one or more controls in the correction interface(e.g., a slider, button, editable curve, etc.). User interactions withthe controls are received by the system/UI manager 902 and sent to thecorrection engine 906. The correction engine 9006 includes variousalgorithms for generating color corrections, such as matrixtransformations, color space warping and the like. The correction engine906 also determines new color values for 3D LUT 910. The 3D LUT can beinitialized by the system/UI manager 902 with color values upon theloading of the digital image. The digital image can be rapidly processedby the display engine 908 which replaces pixel values in the digitalimage that are in the sample range with corrected values provided by the3D LUT 910. Techniques for color correcting digital images using a 3DLUT are described in co-pending U.S. patent application No. ______entitled “3D LUT Techniques For Color Correction of Images.”.

The System/UI Manager 902 is responsible for generating and displayingthe 3D histograms, shown in FIGS. 6-8. When the user selects one or morecolors from a digital image, the System/UI manager 902 receives theselected color and instructs the display engine 908 to display in adisplay area references corresponding to colors plotted or selected froma digital image, as shown in FIG. 8 a. In response to input, theSystem/UI Manager 902 instructs the display engine 908 to displaygradient surfaces including projections corresponding to the references.

User System Architecture

FIG. 10 is a block diagram of an exemplary user system architecture 1000for hosting the color correction system 900. The architecture 1000includes one or more processors 1002 (e.g., IBM PowerPC®, Intel Pentium®4, etc. ), one or more display devices 1004 (e.g., CRT, LCD), one ormore graphics processing units 1006 (e.g., NVIDIA® Quadro FX 4500,GeForce® 7800 GT, etc.), one or more network interfaces 1008 (e.g.,Ethernet, FireWire, USB, etc.), one or more input devices 1010 (e.g.,keyboard, mouse, etc.), and one or more computer-readable mediums 1012(e.g. SDRAM, optical disks, hard disks, flash memory, L1 or L2 cache,etc.). These components exchange communications and data via one or morebuses 1014 (e.g., EISA, PCI, PCI Express, etc.).

The term “computer-readable medium” refers to any medium thatparticipates in providing instructions to a processor 1002 forexecution, including without limitation, non-volatile media (e.g.,optical or magnetic disks), volatile media (e.g., memory) andtransmission media. Transmission media includes, without limitation,coaxial cables, copper wire and fiber optics. Transmission media canalso take the form of acoustic, light or radio frequency waves.

The computer-readable medium 1012 further includes an operating system1016 (e.g., Mac OS®, Windows®, Linux, etc.), a network communicationmodule 1018, one or more digital images or video clips 1020 and a colorcorrection application 1022. The color correction application 1022further includes a system/UI manager 1024, a correction engine 1026, aheuristic engine 1028, a display engine 1030 and one or more 3D LUTs1032. Other applications 1034 can include any other applicationsresiding on the user system, such as a browser, compositing software(e.g., Apple Computer Inc.'s Shake® digital compositing software), acolor management system, etc. In some implementations, the colorcorrection application 1022 can be integrated with other applications1034 or be configured as a plug-in to other applications 1034.

The operating system 1016 can be multi-user, multiprocessing,multitasking, multithreading, real-time and the like. The operatingsystem 1016 performs basic tasks, including but not limited to:recognizing input from input devices 1010; sending output to displaydevices 1004; keeping track of files and directories oncomputer-readable mediums 1012 (e.g., memory or a storage device);controlling peripheral devices (e.g., disk drives, printers, GPUs 1006,etc.); and managing traffic on the one or more buses 1014. The networkcommunications module 1018 includes various components for establishingand maintaining network connections (e.g., software for implementingcommunication protocols, such as TCP/IP, HTTP, Ethernet, etc.). Thedigital images 1020 can be a video clip of multiple digital images or asingle image. The color correction application 1022, together with itscomponents, implements the various tasks and functions, as describedwith respect to FIGS. 1-9. If the GPUs 1006 have built-in support toprocess 3D meshes, the 3D LUT operations are preferably performed by theGPUs 1006 to improve system performance.

The user system architecture 1000 can be implemented in any electronicor computing device capable of hosting a color correction application,including but not limited to: portable or desktop computers,workstations, main frame computers, network servers, etc.

Various modifications may be made to the disclosed implementations andstill be within the scope of the following claims.

1. A color correction method, comprising: generating a user interfacefor display on a display device, the user interface including a displayarea; generating a three-dimensional cube representing a color space fordisplay in the display area; and generating a plurality of spheres fordisplay within the cube, where the spheres are sized to represent pixeldensities in a digital image.
 2. The method of claim 1, where the colorspace is RGB (Red, Green, Blue).
 3. The method of claim 1, where thecolor space is HLS (Hue, Lightness and Saturation).
 4. The method ofclaim 1, further comprising: adjusting the orientation of the cube inthe display area in response to input.
 5. The method of claim 1, furthercomprising: replacing the spheres with points representing pixel valuesin the digital image in response to input, where each graphical objectrepresents a single pixel value.
 6. The method of claim 1, where thethree-dimensional cube and spheres are generated for display over thedigital image.
 7. The method of claim 1, further comprising: generatinga gradient surface for display in the display area.
 8. The method ofclaim 1, where the gradient surface is selected from a group of gradientsurfaces including hue/saturation and luminance gradient surfaces. 9.The method of claim 1, further comprising: generating a reference fordisplay in the cube, the reference representing a color range in thedigital image.
 10. The method of claim 7, further comprising: generatinga projection for display on a gradient surface displayed in the cube,the projection for providing a visual indication of the position of thereference in color space.
 11. A color correction method, comprising:generating a user interface for display on a display device, the userinterface including a display area; and generating a color correctioninterface for display in the display area, the interface including acontrol for adjusting a selected hue range in a digital image, where thecontrol allows for hue overstep.
 12. A computer-readable medium havingstored thereon instructions which, when executed by a processor, causesthe processor to perform the operations of: generating a user interfacefor display on a display device, the user interface including a displayarea; generating a three-dimensional cube representing a color space fordisplay in the display area; and generating a plurality of spheres fordisplay within the cube, where the spheres are sized to represent pixeldensities in a digital image.
 13. The computer-readable medium of claim12, further comprising: adjusting the orientation of the cube in thedisplay area in response to input.
 14. The computer-readable medium ofclaim 12, further comprising: replacing the spheres with pointsrepresenting pixel values in the digital image in response to input,where each graphical object represents a single pixel value.
 15. Thecomputer-readable medium of claim 12, where the three-dimensional cubeand spheres are generated for display over the digital image.
 16. Thecomputer-readable medium of claim 12, further comprising: generating agradient surface for display in the display area.
 17. Thecomputer-readable medium of claim 12, where the gradient surface isselected from a group of gradient surfaces including hue/saturation andluminance gradient surfaces.
 18. The computer-readable medium of claim17, further comprising: generating a reference for display in the cube,the reference representing a color range in the digital image.
 19. Thecomputer-readable medium of claim 17, further comprising: generating aprojection for display on a gradient surface displayed in the cube, theprojection for providing a visual indication of the position of thereference in color space.
 20. A computer-readable medium having storedthereon instructions which, when executed by a processor, causes theprocessor to perform the operations of: generating a user interface fordisplay on a display device, the user interface including a displayarea; and generating a color correction interface for display in thedisplay area, the interface including a control for adjusting a selectedhue range in a digital image, where the control allows for hue overstep.